% Created 2022-04-20 周三 23:09
% Intended LaTeX compiler: xelatex
\documentclass[a4paper]{article}
                 \usepackage{graphicx}
                 \usepackage{xcolor}
                 \usepackage{xeCJK}
                 \usepackage{fixltx2e}
                 \usepackage{longtable}
                 \usepackage{float}        
                 \usepackage{tikz}         
                 \usepackage{wrapfig}      
                 \usepackage{latexsym,amssymb,amsmath}
                 \usepackage{textcomp}
                 \usepackage{bicaption}
                 \usepackage{listings}     
                \usepackage{marvosym}     
                \usepackage{textcomp}     
                \usepackage{latexsym}     
                \usepackage{natbib}
                \usepackage{indentfirst}
		\usepackage{hyperref}
                \usepackage{geometry}
                \usepackage{minted}
                \setCJKmainfont{宋体}
                \setlength{\parindent}{2em}
                \usepackage{color}
                \usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[R]{\footnotesize{《Android 物联网应用程序开发》 广西职业师范学院实验教学指导书}}
\geometry{a4paper,left=2.5cm,right=2.5cm,top=2cm,bottom=2cm}
\setCJKmainfont{仿宋}
\setCJKsansfont{Microsoft YaHei}
\setCJKmonofont{Microsoft YaHei}

            \lstset{
  columns=fixed,       
  breaklines=true, breakautoindent=true,breakindent=4em,
  numbers=left,                                        % 在左侧显示行号
  frame=none,                                          % 不显示背景边框
  backgroundcolor=\color[RGB]{245,245,244},            % 设定背景颜色
  keywordstyle=\color[RGB]{40,40,255},                 % 设定关键字颜色
  numberstyle=\footnotesize\color{darkgray},           % 设定行号格式
  commentstyle=\it\color[RGB]{0,96,96},                % 设置代码注释的格式
  stringstyle=\rmfamily\slshape\color[RGB]{128,0,0},   % 设置字符串格式
  showstringspaces=false,                              % 不显示字符串中的空格
  language=java,                                        % 设置语言
}

\usemintedstyle{emacs}
    \setminted{%
        autogobble,% automatically remove the spaces to the left of the code
        linenos=true,% show line numbers
        fontsize=\small,% smaller font size
        % escapeinside=@@,% insert latex code between @ and @
        frame=lines,% frame styles: none or lines
        % frame=none,
        numbers=none,% show line numbers on: left, right, both or none
        mathescape=true,% insert math code
	breaklines=true,
    }%
    \setmintedinline{%
        fontsize=\smallsize,
    }%
\date{\today}
\title{实验六：广播接收器练习}
\hypersetup{
 pdfauthor={},
 pdftitle={实验六：广播接收器练习},
 pdfkeywords={},
 pdfsubject={},
 pdfcreator={Emacs 27.1 (Org mode 9.3.8)}, 
 pdflang={English}}
\begin{document}

\maketitle
\tableofcontents

\newpage

\section{实验目的}
\label{sec:orgc6829d4}
\begin{itemize}
\item 掌握Android 广播接收器组件的使用
\end{itemize}
\section{实验设备和器件}
\label{sec:org32fceba}
\begin{itemize}
\item PC
\item 内存要求 8G 以上
\end{itemize}
\section{实验内容}
\label{sec:org79787fa}
\subsection{Broadcast广播练习}
\label{sec:org1cc4ca3}
\subsubsection{实训步骤}
\label{sec:orgda9cba5}
\begin{itemize}
\item 创建项目BroadcastTest,创建一个Activity，该界面上有一个按钮"发送广播"
\item 创建广播接收器类，该类继承android.content.BroadcastReceiver,并重构onReceive方法
\item 创建动作字符串，用以标示广播,比如在我的项目里，ACT\_1标示一个广播:
\lstset{language=java,label= ,caption= ,captionpos=b,numbers=none}
\begin{lstlisting}
static final String ACT_1 = "com.jacklisp.broadcast_1";
\end{lstlisting}
\item 创建IntentFilter类,并实例化广播接收器
\lstset{language=java,label= ,caption= ,captionpos=b,numbers=none}
\begin{lstlisting}
IntentFilter intentFilter = new IntentFilter(ACT_1);
myReceiver = new MyReceiver(); 
\end{lstlisting}
\item 注册广播接收器
\lstset{language=java,label= ,caption= ,captionpos=b,numbers=none}
\begin{lstlisting}
registerReceiver(myReceiver,intentFilter);
\end{lstlisting}
\item 发布广播
\lstset{language=java,label= ,caption= ,captionpos=b,numbers=none}
\begin{lstlisting}
Intent intent = new Intent(ACT_1);
intent.putExtra("msg","要发送的消息");
sendBroadcast(intent);
\end{lstlisting}

\item 在广播接收器onReceive方法中添加接收到广播后的处理程序，在本次练习的例
子是发送一则Toast消息。
\lstset{language=java,label= ,caption= ,captionpos=b,numbers=none}
\begin{lstlisting}
 @Override
public void onReceive(Context context, Intent intent) {
    // TODO: This method is called when the BroadcastReceiver is receiving
    // an Intent broadcast.
    //step 5:接收到广播后的处理
    String msg = intent.getStringExtra("msg");
    Toast.makeText(context,"接收到的消息是:"+msg,Toast.LENGTH_LONG).show();
}
\end{lstlisting}
\end{itemize}
\end{document}